home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / zgrwin37.zip / ZGRAFWIN.DOC < prev    next >
Text File  |  1992-12-30  |  82KB  |  2,057 lines

  1.  
  2.     
  3.     
  4.     Rise up in splendor!  Your light has come.  The glory of the Lord
  5.     shines upon you (Isaiah 60).
  6.     
  7.  
  8. ------------------------------------------------------------------------------
  9.                 CONTENTS
  10. ------------------------------------------------------------------------------
  11.  
  12.         
  13.         
  14.         
  15.  
  16.       I.  ZGRAFWIN -- AN INTRODUCTION
  17.  
  18.  
  19.      II.  SETTING UP
  20.  
  21.  
  22.     III.  COMMAND-LINE SWITCH OPTIONS
  23.  
  24.  
  25.      IV.  CONSTRUCTING GRAPHS
  26.  
  27.      A.  F-2D Graph
  28.      B.  G-3D Graph
  29.      C.  X/Y Line Graph
  30.      D.  Polar Graph
  31.      E.  Log Graph
  32.      F.  Bar Graph
  33.      G.  Pie Graph
  34.      H.  Area/Ribbon Graph
  35.  
  36.  
  37.       V.  PRINTING GRAPHS
  38.  
  39.  
  40.      VI.  MISCELLANEOUS
  41.  
  42.      A.  Math Functions and Syntax 
  43.      B.  Saving/Restoring Graphics Images
  44.      C.  Data-File Input Formats      
  45.      D.  The Editor
  46.      E.  Adding Custom Text to Graphs
  47.      
  48.  
  49.     VII.  FILES INCLUDED ON DISK
  50.  
  51.  
  52.    VIII.  REGISTRATION
  53.  
  54.     
  55.     
  56.     
  57.     
  58.  
  59.  
  60.         
  61.         
  62.         
  63.         
  64.         
  65.         
  66. -------------------------------------------------------------------------------
  67.  
  68.                 
  69.  
  70.     I.  ZGRAFWIN -- AN INTRODUCTION
  71.  
  72.     This program is designed to allow the user to create, display,  and 
  73.     print X/Y, Polar, Log, Bar, Pie, and Area graphs, as well as graphs 
  74.     of  2-D  functions/expressions  [Y  = F(X), or F(X,Y) = 0], and 3-D 
  75.     functions [Z = G(X, Y)] in the MS-Windows 3.X environment.  
  76.     
  77.     The program implements a "quick-and-dirty" approach; it may lack  a 
  78.     few  of  the fancy features that other professional packages offer, 
  79.     but it does allow the user to create, display, and print  a  number 
  80.     of  popular  graph  styles  within  Windows.   It  also  allows the 
  81.     importing and exporting of graphics images in color PCX format.  
  82.     
  83.     If  you are familiar with the DOS ZGRAF program, you will find this 
  84.     program very similar in operation, and will probably  not  need  to 
  85.     read  this document, other than just to get started.  Otherwise, if 
  86.     you're new  to  ZGRAF/ZGRAFWIN,  you  may  want  to  run  the  demo 
  87.     program,  to  get  a  quick  overview  of  some of the graph styles 
  88.     available.     
  89.      
  90.     ZGRAFWIN is a shareware program.  You are encouraged to try it  out 
  91.     and  pass  it  around  to  your  friends.  If you decide to use it, 
  92.     please register the software.  The registration fee is just $15. 
  93.                                
  94.     Requirements for ZGRAFWIN are:  MS-Windows ver. 3.0  or  later.   A 
  95.     color VGA monitor and a mouse are strongly recommended.
  96.                             
  97.  
  98.     
  99.                  
  100.     II.  SETTING UP
  101.  
  102.     To start the program, run "ZGRAFWIN.EXE" from the  Windows  Program 
  103.     Manager.
  104.             
  105.         
  106.  
  107.    III.  COMMAND-LINE SWITCH OPTIONS
  108.  
  109.     None.              
  110.     
  111.         
  112.              
  113.     IV.  CONSTRUCTING GRAPHS
  114.     
  115.     Instead  of  giving detailed directions for constructing individual 
  116.     graphs, a brief description of each type of graph is given, and  an 
  117.     example  of  constructing a graph of each category is demonstrated.  
  118.     The directions should become fairly intuitive after working through 
  119.     just the few examples listed here. . .
  120.                         
  121.         By  the  way,  if  you  need help while working with ZGRAFWIN, just 
  122.         click on the Tool Bar "Help" button, or select the "Help" top-level 
  123.         pull-down menu.  Help is available  on  a  number  of  topics--like 
  124.         information  on  the different graph styles available, instructions 
  125.         on how to print a graph, and more.
  126.                         
  127.  
  128.                         
  129.                         
  130.                         
  131.                         
  132. -------------------------------------------------------------------------------
  133.     
  134.     
  135.     
  136.     A.  F-2D Graph
  137.             
  138.       Description:  Graphs  up   to   four   separate   "2-dimensional" 
  139.             expressions  in  the x-y plane.  The user may graph 
  140.             both functions [i.e., equations of the form F(X)  = 
  141.             0], and non-functions [equations of the form F(X,Y) 
  142.             =  0].   Data  ranges  may  be  selected for graphs 
  143.             either automatically  [auto-scaling],  or  manually
  144.             [manual-scaling];  in  the  latter case  the  graph
  145.             is shown over the range:
  146.                 
  147.                  xmin <= X <= xmax   and   ymin <= Y <= ymax; 
  148.                 
  149.             the user must select the min. and max. values.
  150.  
  151.             
  152.         Notes:    The first form [F(X) = 0] requires a true function, 
  153.             e.g.,  F(X) = 5.0 * X + 3.0  or F(X) = sin(X).  The 
  154.             second form [F(X,Y) =  0]  may  be  used  to  graph 
  155.             "non-functions"  in  the  x-y  plane, like circles, 
  156.             hyperbola, etc.   For  example, one  would  use  an 
  157.             equation  like F(X,Y) = X*X + Y*Y - 25.0 to graph a 
  158.             circle.
  159.     
  160.             In each case, the user may specify  the  number  of 
  161.             intermediate  data  points  [n]  used  to calculate 
  162.             function values, where 3 <= [n] <= 250.   For  most 
  163.             graphs,  choosing a value of [n] between 75 and 100 
  164.             provides adequate "resolution";  larger  values  of 
  165.             [n]  produce  a  nicer-looking graph, but will take 
  166.             longer  to  calculate.   The  complexity   of   the 
  167.             function  also  impacts  the  calculation time.  On 
  168.             most machines, it shouldn't take but a few  seconds 
  169.             to generate a F(X) graph, or a minute or two for an 
  170.             F(X,Y) graph, with n = 100.
  171.  
  172.             Up to 130 characters may be entered  for  the  F-2D 
  173.             expression,    and   the   function/expression   is 
  174.             evaluated in double-precision.  Most standard  math 
  175.             functions  are  allowed; see Sect.  VI, Paragraph A 
  176.             for a complete list of  legal  functions,  and  for 
  177.             information on legal function syntax.  
  178.  
  179.  
  180.     Example #1:  Graph  the following four  equations on a single graph 
  181.              over the range -20 <= X <= 20, -2 <= Y <= 5, using n = 
  182.              100 intermediate data-points to evaluate each function:
  183.  
  184.              F(X) = sin(X) / X        
  185.              F(X) = 2.0 * sin(X) / X 
  186.              F(X) = 4.0 * sin(X) / X 
  187.              F(X) = 5.0 * sin(X) / X
  188.  
  189.             
  190.            1.   There are 4 expressions.  Select "Setup | Number of 
  191.             expressions" and select "Four".   Select  "Setup  | 
  192.             Enter   expression(s)",   and   type:   "sin(X)/X", 
  193.             "2.0*sin(X)/ X", "4.0*sin(X)/X", and "5.0*sin(X)/X" 
  194.                
  195.                
  196.  
  197.  
  198. -------------------------------------------------------------------------------
  199.                
  200.                
  201.                
  202.                for  the  four  entries  (Note that an  upper-   or 
  203.                lower-case "X" is used for the variable).
  204.  
  205.            2.  Select  "Setup | Data ranges/scaling",  then  select 
  206.                "X-minimum" and type  "-20.0".   Select  "X-maximum" 
  207.                and  type  "20.0".  Notice floating-pt.  numbers are 
  208.                used.  Enter "-2.0" and "5.0" for  the  minimum  and 
  209.                maximum    Y-values,   respectively.    Toggle   the 
  210.                manual-scaling ON (since we are  MANUALLY  selecting 
  211.                the data-ranges).    
  212.  
  213.            3.  Select "Setup | Number of data pts", and enter "100".  
  214.                This  corresponds  to  the  number  of  intermediate 
  215.                function evaluations  to  be  used  by  the  program 
  216.                within the interval (Xmin, Xmax) = (-20, 20).
  217.                 
  218.            4.  Select "Title",  and  enter "Graphs of sin(X)/X"  as 
  219.                the Main Title.        
  220.  
  221.            5.  Select  "Draw".   After  a  few seconds,  the  graph 
  222.                        should appear on the screen...
  223.                 
  224.  
  225.                     After the graph is displayed, you can try using various 
  226.                     colors for  the  "Axis  color",  "Plot  color(s)",  and 
  227.                     "Background  color"  categories.  Then select "Draw" or 
  228.                     click the "Redraw Graph" Tool Bar Button to re-view the 
  229.                     graph.  You can continue trying different settings  and 
  230.                     re-generating  the  graph  as  necessary  to  obtain  a 
  231.                     pleasing display.
  232.  
  233.             The "Options | Screen grid toggle" option allows you to 
  234.             switch a grid of dots for the graph on or off.
  235.  
  236.              
  237.     Example #2:  Let's now try an expression in X  and Y.  We'll  graph 
  238.              the equation:
  239.                
  240.                     1.5     1.5
  241.               |X|   + |Y|   = 25,    -10 <= X <= 10, -10 <= Y <= 10
  242.                
  243.                
  244.            1.  To graph an expression like this, first  rewrite  it 
  245.                in a  form ZGRAFWIN  can handle, i.e., in  the  form 
  246.                "F(X,Y) = 0".  Here, rewrite the equation as:
  247.  
  248.                 (abs(X)) ^ 1.5 + (abs(Y)) ^ 1.5 - 25.0 = 0.0
  249.  
  250.                
  251.            2.  There  is  only  one  expression in  this  case,  so 
  252.                click "Setup | number of expressions" and enter "1". 
  253.                Select "Setup | Enter expression(s)" and type in the
  254.                formula:  "(abs(X)) ^ 1.5 + (abs(Y)) ^ 1.5 - 25.0". 
  255.                
  256.            3.  Select  "Data ranges/scaling", and enter "-10.0" for 
  257.                X-minimum and Y-minimum.  Enter "10.0" for X-maximum 
  258.                and Y-maximum.  Turn Manual-scaling ON.
  259.                
  260.            4.  Select "Number of  data  points",  and  enter  "50".  
  261.                
  262.                
  263.                
  264. -------------------------------------------------------------------------------
  265.                
  266.                
  267.                
  268.             5.    Select "Draw".  While the graph is calculating, the 
  269.             approximate  amount  completed  is  displayed  as a 
  270.             percentage.  After a minute or two  of  calculation 
  271.             time, the graph should appear on the screen.
  272.                
  273.                
  274.     Example #3:  Graph the equations of a hyperbola,
  275.         
  276.                      2    2
  277.                          X  - Y = 25,  and of an ellipse,
  278.            
  279.                               2        2 
  280.                          (X/5)  + (Y/3)  = 1.
  281.  
  282.  
  283.            1.  Select  "number  of  expressions"  and  enter   "2".  
  284.                select "Enter expression(s)" and type in: "X*X - Y*Y 
  285.                -25.0" and "SQR(X/5.0) + SQR(Y/3.0) - 1.0". 
  286.            
  287.            2.  Repeat steps 3-5 of Example #2.
  288.                       
  289.            
  290.     Interrupting 
  291.     Calculations:    For the F-2D graph, it is possible to interrupt the 
  292.             calculation process by  pressing/holding  down  the 
  293.             [Esc] key  while  the graph  is  being computed, if
  294.                 desired... 
  295.         
  296.     ZOOM Adjust:    The "View | ZOOM" feature allows the user to "zoom"
  297.             into  a particular area of the graph.  The user may
  298.             select  a  rectangular  region  onscreen  with  the 
  299.             mouse, and the graph is then adjusted to  show  the 
  300.             new region more precisely.  
  301.         
  302.     Scroll-Bars:    The Up-, down-, left-, and  right-  arrows  on  the 
  303.             scroll-  bars  may  be  used to adjust the relative 
  304.             positioning of the graph (Note: Both the  ZOOM  and 
  305.             the scroll-bar action is also available on the X/Y- 
  306.             Line graph, described later).
  307.  
  308.     Rapid-Color 
  309.     Adjustment:    In ZGRAFWIN when a graph is displayed onscreen, the 
  310.             left and right arrows increment and  decrement  the 
  311.             crurrent  background  color, respectively.  The up- 
  312.             and down-arrows  are used to select and change  the 
  313.             color   of   items  appearing  in  the  foreground, 
  314.             respectively.  In Example 3  above,  there  were  3 
  315.             foreground  items--the  x-y  axis,  and the 2 graph 
  316.             traces themselves.   
  317.             
  318.             Typicaly, you can use the up- and  down-arrows   as 
  319.             follows:  First press the up-arrow as many times as 
  320.             necessary until the foreground  item  you  want  to 
  321.             modify  is  selected.  Then press the down-arrow to 
  322.             switch between available foreground colors for this 
  323.             particular item  (This  rapid-color  adjustment  is 
  324.             nice  to  use with the bar-, pie-, and area-graphs, 
  325.             as you'll see later).
  326.             
  327.                
  328.  
  329.                            
  330. -------------------------------------------------------------------------------
  331.         
  332.                                 
  333.              
  334.                           
  335.     B.  G-3D Graph
  336.              
  337.  
  338.       Description:     Graphs a 3-D function Z = G(X,Y), for X, Y, and  Z
  339.              in the range (Xmin, Xmax), (Ymin, Ymax), and (Zmin,
  340.              Zmax), respectively.
  341.            
  342.             Notes:   Despite  its  appearance on the menu, no automatic 
  343.              scaling is available for  this  graph.   The  user 
  344.              should  select  values  for the min and max values 
  345.              that "include" the range of values which  will  be 
  346.              generated.  For example, if the function is: 
  347.             
  348.                      G(X,Y) = cos( 0.05 * X *Y ), 
  349.             
  350.              with -10.0 <= X <= 10.0, and -10.0 <=  Y  <=  10.0 
  351.              (as  in  the  example below), one could select the 
  352.              values (Zmin, Zmax) as (-1.0, 1.0),  so  that  all 
  353.              points of the cosine-function will be included and 
  354.              displayed.  Again, up to  130  characters  may  be 
  355.              entered  for the function G(X,Y).  The function is 
  356.              evaluated in double-precision format; see notes on 
  357.              math-functions and  ZGRAFWIN  function  syntax  in 
  358.              Sect. VI, part A, below.
  359.  
  360.    Interrupting Calc's:     Since G(X,Y) "surface plots" require many lines to 
  361.              be  drawn,  it  may  take  a little while  for the 
  362.              program  to  draw  a  complete  graph--please   be 
  363.              patient.   You  can  abort  the graph construction 
  364.              process at any  time  while  the  graph  is  being 
  365.              created  by  pressing  the  [Esc] key -- this will 
  366.              save you some time if you do make a mistake...  
  367.              
  368.    Speed vs. Accuracy:   Naturally,  there  is  a  tradeoff  between  graph 
  369.              accuracy  and graph calculation time for this type 
  370.              of graph, and three accuracy/speed settings may be 
  371.              chosen.  For the first  pass  at  a  new  function 
  372.              you  may want  to select the "Low accuracy / fast" 
  373.              draw option (under "Setup| Format of graph/speed") 
  374.              to create a "rough draft",  and then for the final 
  375.              product select the "High accuracy / slow"  setting 
  376.              to  generate  a more "presentation-quality" graph.  
  377.              As you might expect,  the  higher  accuracy  graph 
  378.              looks  a  lot  better,  but  comes at considerable 
  379.              expense of CPU time--it  may   take  4-5   minutes 
  380.              to  generate  a  hi-accuracy  graph  on  a  slower 
  381.              machine...
  382.  
  383.  
  384.  
  385.           Example:   Graph the function G(X,Y) = cos( 0.05 * X*Y ), for 
  386.              X in the range (-100,100),  and  Y  in  the  range 
  387.              (-100,100).  Use medium accuracy/speed.
  388.  
  389.              
  390.              1.  Select  "Setup | Enter 3D function", and  type 
  391.                  "cos( 0.05 * X * Y ).
  392.  
  393.  
  394.  
  395.  
  396. -------------------------------------------------------------------------------
  397.              
  398.  
  399.  
  400.              
  401.              2.  Select  "Setup | Data ranges",  then  manually
  402.                  type in  -10.0   for   the   X-minimum  value,   
  403.                  10.0 for X-maximum, -10.0 for Y-min., and 10.0
  404.                  for Y-maximum,  respectively.   
  405.  
  406.              3.  Enter  -1.0  and  1.0   for Z-min. and Z-max., 
  407.                  respectively.  
  408.              
  409.              4.  Select  "Setup | Format of graph/speed",  then 
  410.                  "Medium accuracy / medium".
  411.  
  412.              5.  Use Windows to "Maximize" the screen window in 
  413.                  which ZGRAFWIN is running to full-screen (this 
  414.                  isn't  necessary,  but  seems  to   help   the 
  415.                  hidden-line  removal  algorithm for this graph 
  416.                  work a little better). 
  417.     
  418.              6.  Select  "Draw"  to  create  the graph.
  419.  
  420.              
  421.     Wire Frame Toggle:   "Options | Screen Frame Toggle"  may  be  used  to 
  422.              switch the "wire-frame" outline for the  graph  on 
  423.              or off.
  424.                  
  425.     Band-Colorization:   A "band colorization" feature allows you to  iden- 
  426.              tify  six distinct z-value regions in the graph by 
  427.              color.  This feature can be  toggled  on/off  (see 
  428.              "Band colorization toggle" under "Format of graph/ 
  429.              speed").   The  color  of each band corresponds to 
  430.              each plot color, which  can  be  select  with  the 
  431.              "Options", "Colors", "Plot color(s)" selection.      
  432.  
  433.     Sample Functions:    If  you'd  like  to  look  at  some  other  "easy" 
  434.              3-D functions, here's some to try:
  435.                 
  436.                 
  437.                  
  438.                  sin( 0.05 * X * Y ) ,          -10 <= X <= 10
  439.                                          -10 <= Y <= 10
  440.                                           -1 <= Z <= 1    
  441.              
  442.                 
  443.                  cos( 0.5*X ) - sin( 0.5*Y ) ,  -10 <= X <= 10
  444.                                          -10 <= Y <= 10
  445.                                           -2 <= Z <= 2
  446.             
  447.                 
  448.                  sin( 0.05 * sqrt(X*X + Y*Y) ),
  449.                                 -100 <= X <= 100
  450.                                -100 <= Y <= 100
  451.                                  -1 <= Z <= 1
  452.                  
  453.              
  454.              
  455.              
  456.              
  457.  
  458.  
  459.  
  460.             
  461.  
  462. -------------------------------------------------------------------------------
  463.              
  464.  
  465.              
  466.     C.  X/Y Line Graph
  467.  
  468.       Description:  Graphs up to 1000 (x,y) data-points  (total)  taken 
  469.                         from  a data-file, displaying a user-defined symbol 
  470.                         at each data point.  By  using  different  symbols, 
  471.                         multiple  "groups"  of  data  may be displayed on a 
  472.                         single X/Y graph grid.
  473.  
  474.             Notes:    Each  (x,y)  coordinate  must be entered on its own 
  475.                         line in  the  data-file, in floating-point   format 
  476.                         (anywhere  on the line, but with at least one space 
  477.                         separating the x- and y-coordinates).   The  symbol 
  478.                         to  be  displayed is either a single character or a 
  479.                         hex representation  for  a  single  character   (as 
  480.                         is explained below), and  must follow the y-coordi- 
  481.                         nate anywhere on the line.  Each  "group"  of  data 
  482.                         should have a unique symbol associated with it.
  483.  
  484.                         If   you   want  lines  drawn  between  data-points 
  485.                         (connecting  lines  may  be  added/removed  by  the 
  486.                         "Connecting-line  toggle"  option selection), it is 
  487.                         important to  list  the  data-points  in  the  file 
  488.                         sequentially--in  the order in which the data is to 
  489.                         be plotted, as in the example below. . .
  490.  
  491.  
  492.           Example:    It is desired to display five groups of (x,y)  data 
  493.                         on a graph, and identify the individual groups with 
  494.                         symbols  as  follows:  "A" for the first group, "B" 
  495.                         for the second, a small triangle for the  third,  a 
  496.                         small box  for  the   fourth,  and  an  upside-down
  497.                         triangle for the fifth group of data.
  498.  
  499.                         The  first data group is: (0, 10), (1, 0), (2, 30), 
  500.                         (3, 20), (4, 10), and (5, 20).
  501.  
  502.                         The second data group is: (0,50),  (1,60),  (2,65), 
  503.                         (3, 65), (4, 60), and (5, 50).
  504.  
  505.                         The  third  data group is: (0,90), (1,100), (2,80), 
  506.                         (3, 90), (4, 100), and (5, 90).
  507.  
  508.                         The  fourth  data group is: (0, 110), (1, 120), (2, 
  509.                         130), (3, 120), (4, 125), and (5, 115).
  510.  
  511.                         The fifth data group is:  (0,  150),  (1,145),  (2, 
  512.                         155), (3, 160), (4, 150), and (5, 135).
  513.  
  514.  
  515.              1.  Create  the  data-file.   Use  an ASCII editor 
  516.                  (you can use ZGRAFWIN's built-in editor if you 
  517.                  like--see section VI, part B) to create a file 
  518.                  called "xy.dat".  For convenience this file is 
  519.                  included with ZGRAFWIN [the "xy.dat" file  has 
  520.                  some  additional instructions in it, which you 
  521.                  may ignore for now, with the exception of  the 
  522.                  "#GRAPH_TYPE"  line,  and  some options in the 
  523.                  "OPTIONS" section, as will be explained].  The 
  524.                  data file looks like this:
  525.                  
  526.                         
  527.              
  528. -------------------------------------------------------------------------------
  529.                         
  530.  
  531.                         
  532.     This  tells  ZGRAFWIN   the  ->   #GRAPH_TYPE = XY_GRAPH
  533.     type of graph to construct.                
  534.                                           
  535.     These  lines  specify some   ->   #OPTIONS = GRID ^ CONNECT ^ 
  536.     of the different available              MANUAL ^ SYMBOLS ^
  537.     graph options.  The  graph   ->   #XMIN    =  -1.0
  538.     has  a   background   grid   ->   #XMAX    =   6.0
  539.     ("GRID")  with  connecting   ->   #YMIN    = -20.0
  540.     lines  between data points   ->   #YMAX    = 170.0
  541.     ("CONNECT"),  and   manual         
  542.     graph scaling will be used
  543.     ("MANUAL").  The graph symbols will be displayed ("SYMBOLS").  
  544.     
  545.     The "XMIN", "XMAX", "YMIN", and "YMAX" variables correspond to  the 
  546.     min.  and max.  values used on the X- and Y- axes on the graph.  If 
  547.     the XMIN, XMAX, YMIN, and YMAX values were not listed,  or  if  the 
  548.     "AUTO"  (automatic  scaling)  option was listed instead of "MANUAL" 
  549.     (manual scaling), the XMIN, XMAX, YMIN, and YMAX  values  would  be 
  550.     automatically  determined  by the program, based upon the X- and Y- 
  551.     input-data ranges occurring in the data.  
  552.      
  553.                                                 0.0   10.0   A
  554.                                 1.0    0.0   A
  555.      This is the  first group of            2.0   30.0   A
  556.      data-points,  which will be   ->       3.0   20.0   A
  557.      displayed with 'A' symbols.            4.0   10.0   A
  558.                                 5.0   20.0   A
  559.      Blank lines or lines with a     
  560.      "!" in the first column are   ->
  561.      comment  lines,   and   are
  562.      ignored by ZGRAFWIN.       
  563.                                  0.0   50.0   B
  564.      Second group of  data-points           1.0   60.0   B
  565.      will be displayed using  'B'  ->       2.0   65.0   B
  566.      symbols.                               3.0   65.0   B
  567.                                 4.0   60.0   B
  568.                                 5.0   50.0   B
  569.          More Blank lines (ignored)    ->
  570.          
  571.          The third group of data uses           0.0   90.0   \1E      
  572.          small triangles.   Note: "1E"          1.0   100.0  \1E
  573.          is the hexadecimal value for  ->       2.0   80.0   \1E
  574.          this  character  in  Windows'          3.0   90.0   \1E
  575.          OEM character set  (this  is           4.0   100.0  \1E
  576.          just an IBM graphics char.)            5.0   90.0   \1E
  577.  
  578.          The fourth data  group  goes           0.0   110.0  \FE
  579.          here. "\FE" is the  graphics             1.0   120.0  \FE
  580.          representation  for  a small  ->         2.0   130.0  \FE
  581.          box char. (value FEH).             3.0   120.0  \FE
  582.                                                 4.0   125.0  \FE
  583.                                                 5.0   115.0  \FE
  584.  
  585.          Fifth  group of data-points             0.0   150.0  \1F
  586.          will  be  displayed   using   ->       1.0   145.0  \1F
  587.          upside-down triangless (hex            2.0   155.0  \1F
  588.          value 1FH).                            3.0   160.0  \1F
  589.                                                 4.0   150.0  \1F
  590.      The last line of the file     ->        5.0   135.0  \1F
  591.  
  592.  
  593.                         
  594. -------------------------------------------------------------------------------
  595.                         
  596.                         
  597.                  When done editing, save  the file, and  return 
  598.                  to the ZGRAFWIN "X/Y Line" menu. 
  599.                  
  600.              2.  Under the "X/Y Line" Setup menu,  select "Load 
  601.                  data file".  When prompted for the name of the 
  602.                  data-file, type "xy.dat".  The program  should 
  603.                  indicate that 30 data-points were "Loaded OK".
  604.  
  605.              3.  Select "Draw" or click the "Redraw Graph" Tool
  606.                              Bar button to draw the graph. 
  607.           
  608.     D.  Polar Graph
  609.  
  610.             Description: 
  611.                         Graphs  up to 1000 data-points (total) taken from a 
  612.                         data-file, displaying a user-defined symbol at each 
  613.                         data point.  By using different  symbols,  multiple 
  614.                         "groups" of data may be displayed on a single polar 
  615.                         graph  grid.   Input  data is in either RECTANGULAR 
  616.                         (x,y) format or in POLAR (radius, angle) format.
  617.                    
  618.                 Notes:  (Same as for X/Y Line Graph)
  619.  
  620.               Example:  Graph  the  22  data  points  listed  in  the  file 
  621.                         "polar.dat"  included with ZGRAFWIN.  Since data in 
  622.                         this  file is in polar format, each line of data in 
  623.                         the file is of the form:
  624.         
  625.                             [r]  [theta]  [symbol] ,
  626.                  
  627.                         where [r] and [theta] are the standard polar radius 
  628.                         and angle (radians) quantities, and [symbol] is the 
  629.                         symbol to be displayed ("*" for this example).   
  630.                  
  631.                             1.  Use the ZGRAFWIN  editor  to  look  at  the 
  632.                                 "polar.dat" file (select "Editor" under the 
  633.                                 "Options" menu, then select "Open" and type 
  634.                                 in  "polar.dat").  The lines beginning with 
  635.                                 "#" are command-lines and provide  specific 
  636.                                 graph information to ZGRAFWIN.  E.g., there 
  637.                                 are  commands  to  specify  the background, 
  638.                                 axis, and plot colors for the graph.  
  639.                  
  640.                                 There is also an "#OPTIONS" line.  Use this 
  641.                                 command  (as  you  may  have  observed)  to 
  642.                                 specify  any  of  several  options  for the 
  643.                                 graph.  Here, to inform ZGRAFWIN that  data 
  644.                                 for  this  graph  is being entered in POLAR 
  645.                                 [not (x,y) RECTANGULAR] format, the "POLAR" 
  646.                                 switch is specified on the "#OPTIONS" line. 
  647.   
  648.                                 The last part of the file is just a list of 
  649.                                 22 data points.
  650.                  
  651.                             2.  When finished examining  the  file,  select 
  652.                                 "Setup | Load  data file" and load the file. 
  653.                                 ZGRAFWIN should indicate that 22 data-points 
  654.                                 were loaded.
  655.                 
  656.                 3.  Select "Draw" to draw the graph.
  657.                             
  658.                                 
  659.  
  660. -------------------------------------------------------------------------------
  661.  
  662.  
  663.  
  664.  
  665.     E.  Log Graph
  666.  
  667.  
  668.         Description:   Graphs  up  to  1000  (x,y)  data-points (total) 
  669.                taken from a data-file, in a similar  format  to 
  670.                that  used  in  the  X/Y  line  graphs discussed 
  671.                earlier, but on a logarithmic-type grid.
  672.  
  673.               Notes:   (See  X/Y  Line  Graph  for description of data- 
  674.                file formats).
  675.  
  676.                Three  styles  of  logarithmic  graphs  may   be 
  677.                constructed:
  678.  
  679.                 1.  Linear X, Log Y
  680.                 2.  Linear Y, Log X
  681.                 3.  Log X,    Log Y
  682.  
  683.                For the log scales, it is required that:
  684.  
  685.                 1.  All data coordinates be > 0.0.
  686.  
  687.                 2.  The   ratio   of  largest  to  smallest 
  688.                     coordinates  in  the  graph  must   not 
  689.                     exceed 10^5.
  690.  
  691.                     Example:  Given the data-points:
  692.  
  693.                           (1.0, 1.0),
  694.          THIS EXAMPLE WILL NOT WORK !  ->    (2.0, 100.0),
  695.                           (3.0, 1000.0),
  696.                           (4.0, 1000000.0)
  697.  
  698.  
  699.                     one could create a log-log graph  using 
  700.                     only  the  first 3 data-points, because 
  701.                     if the 4th  data-point  were  included, 
  702.                     the  y-coordinate ratio would be 10^6 / 
  703.                     1.0 = 10^6, which exceeds  the  maximum 
  704.                     allowable ratio (10^5).
  705.  
  706.  
  707.         Example:   Display  two groups of  data on a log-log graph;
  708.                plot the first group of data using asterisks (*) 
  709.                symbols, and the second group using o's (o).
  710.  
  711.                The  first  group  of  data  is: (1,8), (10,80), 
  712.                (100,800), and (1000,8000).
  713.  
  714.                The   second   group   is:  (50,50),  (500,500), 
  715.                (5000,5000), and (50000,50000).
  716.  
  717.  
  718.                1.    First create the data-file.   Use an  ASCII
  719.                 editor to edit the file "log.dat", so  that 
  720.                 it  looks  like this (notice that floating-
  721.                 pt. values are used for the data points):
  722.     
  723.  
  724.                  
  725.                  
  726. -------------------------------------------------------------------------------
  727.  
  728.                  
  729.                             ! ************************
  730.     The "!" symbol in the 1st col. ->  ! * Sample Log Graph. . .
  731.     indicates that these are com-      ! ************************
  732.         ment lines.
  733.                     
  734.     The '#' symbol in  1st  column ->  #GRAPH_TYPE = LOG 
  735.     denotes a  command line.  Here     #OPTIONS    = LOG_LOG ^ CONNECT ^
  736.     ZGRAFWIN is told  that this is
  737.         a log graph, and we've  chosen
  738.     the  LOG_LOG  ( log-X, log-Y ) 
  739.     format.   The 2nd option  says    
  740.     that line-connection is turned
  741.     on, so that  lines  are  drawn
  742.     between data points.   Because 
  743.     there are two options  on  one
  744.     line, each option is separated 
  745.     with  the  carat "^" delimiter
  746.     The  delimiter's  needed  when 
  747.     there  are  two  or more words 
  748.     or fields to separate.
  749.             
  750.     The title of the graph is also ->  #MAIN_TITLE = Sample Log Graph ^
  751.     provided.  The carat symbol is
  752.     used to indicate  the  end  of
  753.     the  string  here  also (Since 
  754.     titles may contain  whitespace 
  755.     between words, a space is  not
  756.     used as the delimiter).            
  757.  
  758.     Next,  set  the    background, ->  #BKG_COLOR   = 0
  759.     axis, and the 2 plot colors to        #AXIS_COLOR  = 12
  760.     (color 0), bright  red  (color       #PLOT_COLORS = 13 ^ 14 ^
  761.     12),   bright  magenta  (color    
  762.         13)  and bright  yellow  (14), 
  763.     respectively.  See Note #2  in 
  764.     Part VI,   Sect. C,   "Command  
  765.         Line   Syntax",   about   Plot 
  766.     and Fill Colors.
  767.  
  768.     "#DATA" is an optional identi- ->  #DATA
  769.     fier  to  indicate  that  the         1.0      8.0      *
  770.     8 data-points now  follow.           10.0     80.0     *
  771.                               100.0    800.0    *
  772.     Note:  For  more   details on         1000.0   8000.0   *
  773.     the "#" commands and options,
  774.     refer to Section VI, Part C.          50.0     50.0     o
  775.                                           500.0    500.0    o
  776.                                           5000.0   5000.0   o
  777.                                           50000.0  50000.0  o
  778.  
  779.                    When done  editing the  data file, return to 
  780.                        the Log Graph menu.
  781.                  
  782.                2.  Under the "Log Graph" Setup  heading, select 
  783.                    "Load data file".  Type in "log.dat" as  the 
  784.                    name   of  the  file.   The  program  should 
  785.                    indicate 8 data-points were "Loaded OK".
  786.  
  787.                3.  Select "Draw" to draw the graph. 
  788.  
  789.                    
  790.     
  791.  
  792. -------------------------------------------------------------------------------
  793.  
  794.                                        
  795.                     
  796.     F.  Bar Graph
  797.  
  798.         Description:   Allows the user to make a bar graph, of up to  3 
  799.                separate groups of bars.
  800.  
  801.  
  802.           Notes:   The  total number of bars in the graph must  not 
  803.                exceed  30.   The  number  of bars is calculated 
  804.                from the formula:
  805.  
  806.                (# Bars,  = (# Groups)  x  (# Samples per Group)
  807.                 Total )
  808.  
  809.                As an example, the program could handle 3 groups 
  810.                of bars, with 10 samples in each group (30  bars 
  811.                total),  but not 2 groups of 16 samples each (32 
  812.                bars total).
  813.                 
  814.                [Note:  the  term "sample" is used here somewhat 
  815.                loosely; sampling in a statistical sense is  not 
  816.                necessarily implied...]    
  817.  
  818.  
  819.         Options:   2-D or 3-D bars  may  be  drawn;  the fill-color  
  820.                of each bar (group) may be  chosen.  Data may be
  821.                entered in  manually  as  in  Example #1  below,  
  822.                or  taken  from  a  data  file as in Example #2. 
  823.                Automatic  or  manual  scaling  may  be  used to 
  824.                determine the range of bar heights on the y-axis.  
  825.  
  826.                  
  827.          Example #1:   Create a 3-D Bargraph entitled "Average Rainfall
  828.                (in.), Jan-May", for 3 cities, using the follow-
  829.                ing rainfall data:
  830.              
  831.                Chicago:
  832.                  Jan.: 18, Feb.: 25, Mar.: 30, Apr: 40, May: 35.
  833.                New York:
  834.                  Jan.: 22, Feb.: 33, Mar.: 20, Apr: 11, May: 20.
  835.                Seattle:
  836.                  Jan.: 58, Feb.: 72, Mar.: 40, Apr: 35, May: 25.
  837.                 
  838.  
  839.                1.  For this example, there are three groups  of 
  840.                    bars  (1 bar group for each city), and there 
  841.                    are five samples in each group.  Select "Bar 
  842.                    groups" under "Setup", and enter "3"; select
  843.                    "Number of samples/group" and enter "5".
  844.  
  845.                2.  Select "Setup", "Enter/Edit data", and  type
  846.                                in the 15 rainfall quantities into the first
  847.                    15 cells  on  the  form-entry screen.  Enter 
  848.                    the   first   sample  for  the  first  group 
  849.                    (Chicago), then the  first  sample  for  the 
  850.                    second  group  (New  York),  then  the first 
  851.                    sample for the third group (Seattle).   Then 
  852.                    enter  the  second  samples  for  the first, 
  853.                    second,  and  third  groups,   respectively, 
  854.  
  855.  
  856.              
  857.              
  858. -------------------------------------------------------------------------------
  859.                    
  860.              
  861.                    etc.  [Tab] may be used  to  move  from  one 
  862.                    field  to  the next on this screen.  So type 
  863.                    in:            
  864.                                 
  865.                    "18.0 [Tab]  22.0 [Tab]  58.0 [Tab]
  866.                     25.0 [Tab]  33.0 [Tab]  72.0 [Tab]
  867.                     30.0 [Tab]  20.0 [Tab]  40.0 [Tab]
  868.                     40.0 [Tab]  11.0 [Tab]  35.0 [Tab]
  869.                     35.0 [Tab]  20.0 [Tab]  25.0 [Tab]".
  870.                    
  871.                    Then select the "OK" button.
  872.  
  873.  
  874.                3.  Select "Titles | Item titles" and enter  the
  875.                    5 individual sample descriptions, i.e., "Jan. 
  876.                    [Enter]  Feb.   [Enter]  Mar.   [Enter] Apr.  
  877.                    [Enter] May [Enter]".
  878.                     
  879.                4.  Select "Legend titles", and type  in  the  3 
  880.                    group  legend  titles, i.e., "Chicago", "New 
  881.                    York", "Seattle".
  882.  
  883.                5.  Select  "Main Title",  then type in "Average
  884.                    Rainfall (in.), Jan-May".
  885.  
  886.                6.  Select "Options | Style", then "3-D Bars".
  887.  
  888.                7.  Press "Draw" to draw the graph.
  889.                
  890.                8.  Try  different  bar fill-colors, and  redraw 
  891.                                the graph.   For  this  graph  each   unique 
  892.                                fill-color  corresponds  to the color of  an 
  893.                                indivdual bar group in the set.
  894.                 
  895.       
  896.      Rapid Color Adjust:   For Bar Graphs, The up- and down- arrows  may be 
  897.                     used to change  the  fill-color  of  each  group
  898.                individually.   
  899.  
  900.       Painting in Fills:   To Paint in a particular (bounded) region of the 
  901.                graph,  just  position  the  mouse to a location 
  902.                within the region to  colorize,  and  click  the 
  903.                left  button.  The region will be filled in with 
  904.                the current paint color [The paint color may  be 
  905.                set/changed   under   the   "Options",  "Colors" 
  906.                submenu,   or  by   clicking   the  right  mouse 
  907.                button].   This  is  a  quick  way  to  color in 
  908.                regions, and is especially useful  on  the  pie, 
  909.                bar, and area graphs for coloring in fills.
  910.                 
  911.                             
  912.           Example #2:   Create the same graph  demonstrated  above,  but 
  913.                use  the input data from the data-file "bar.dat" 
  914.                [This file contains  the  same  data  which  was 
  915.                entered manually in Example #1].  
  916.                 
  917.                1.  Use an  editor (e.g., the  ZGRAFWIN  editor) 
  918.                    to  edit  the file "bar.dat".  We'll examine 
  919.                    in detail the commands present in this  file 
  920.                    (listed here for convenience):
  921.             
  922.  
  923.                                 
  924. -------------------------------------------------------------------------------
  925.              
  926.              
  927.                           
  928.     Indicate the Type of Graph ->  #GRAPH_TYPE = BAR_GRAPH
  929.  
  930.     Indicate the Number of Bar ->  #NUMBER_OF_GROUPS  = 3
  931.     Groups and Samples in  the     #NUMBER_OF_SAMPLES = 5
  932.     bar graph.
  933.  
  934.     Specify the various  graph ->  #DRAW_COLOR    =  15
  935.     Colors  and  Fill Colors--     #BKG_COLOR     =  0
  936.     if not specified here, the     #FILL_COLORS   =  12 ^ 13 ^ 14 ^
  937.     current values  for  these                                  
  938.     parameters in memory  will
  939.     be used.  There are  3 bar
  940.     groups, so  3  fill-colors 
  941.     are used.  Bright red (12) 
  942.         is  used  in the  1st  bar  
  943.         group, Bright magenta (13) 
  944.         in  the  2nd,  and  Yellow 
  945.     (14) is used in the third.
  946.     We   use   a  bright-white 
  947.         border (15), and  a  black
  948.         (0) background color.
  949.     
  950.     Provide legend, item,  and ->  #MAIN_TITLE =   Av. Rain.,  Jan-May^
  951.     main graph titles.   There     #LEGEND_TITLES = Chic.^ NY ^Seattle^
  952.     are 3 group legends and  5     #ITEM_TITLES  = Jan^Feb^Mar^Apr^May^
  953.     item  samples  (words  are 
  954.     abbreviated in the  titles 
  955.     here to allow lines to fit
  956.     on this page, but the file 
  957.     uses the complete strings).
  958.  
  959.     Indicate that a 3-D [not a ->  #OPTIONS = 3D ^ AUTO ^
  960.     2-D graph]  will be drawn.
  961.     Use automatic [not manual,
  962.     user-specified] bar-height
  963.     scaling.
  964.  
  965.     Finally, list the data  to ->  #DATA
  966.     appear in the graph.  Note          18.0   22.0   58.0
  967.     that each row  corresponds        25.0   33.0   72.0
  968.     to the data for  1 sample,        30.0   20.0   40.0
  969.     listing the  rainfall  for        40.0   11.0   35.0
  970.     Chicago,   New York,   and        35.0   20.0   25.0
  971.     Seattle, respectively.
  972.                 
  973.                   
  974.                2.  After editing is complete, select "Load data 
  975.                    file", and type in "bar.dat".  Program  will 
  976.                    indicate that data for 3 groups of bars, and
  977.                    5 samples per group was loaded.
  978.                
  979.                3.  Press "Draw" to draw the graph.
  980.         
  981.         
  982.             Note:  The  Miscellaneous  section,  part  C,  provides 
  983.                complete details on input data-file formats  for 
  984.                bar  graphs,  covering formats for one, two, and 
  985.                three  groups  of  data.   For simplicity,  that 
  986.                information is not discussed in detail here.. 
  987.                 
  988.  
  989.              
  990. -------------------------------------------------------------------------------
  991.              
  992.                           
  993.                
  994.     G.  Pie Graph
  995.                
  996.  
  997.         Description:   Allows the user to construct a pie graph.
  998.  
  999.                
  1000.           Notes:   The  Maximum  Number of Slices in the Pie is 10.  
  1001.                Data is averaged, so  the  total  of  the  slice 
  1002.                magnitudes  need  not  necessarily add up to 100 
  1003.                (i.e., 100 percent).
  1004.                
  1005.         Options:   2-D  and 3-D pies may be drawn.  Fill-colors may 
  1006.                be selected for each slice  in  the  pie,  or  a 
  1007.                different  "cross-hatch"  pattern can be used to 
  1008.                identify each slice.  Input data may be  entered 
  1009.                manually  (as  in  the example, below), or taken 
  1010.                from a data file (see the Miscellaneous section, 
  1011.                part C, for pie graph input data-file  formats).  
  1012.                The  file  "pie.dat" contains the input data for 
  1013.                this example, if  you'd  like  to try  loading a 
  1014.                data-file  instead  of entering the  data-values 
  1015.                in manually.
  1016.  
  1017.                
  1018.          Example:  Create a 3-D Pie Graph entitled "Grain Sales, by 
  1019.                Percent" with the  following  data:  Wheat:  30, 
  1020.                Corn: 25, Soy: 20, Rice: 10, Other: 15.
  1021.                
  1022.                1.  Select "Setup | Number of slices"; type "5".
  1023.  
  1024.                2.  Select "Enter/Edit data"  and enter the five 
  1025.                    percentages in floating-point format,  i.e., 
  1026.                    "30.0", "25.0", "20.0", "10.0",  and  "15.0"
  1027.                    into  the  first 5 cells of the "Slice-size"
  1028.                    column.
  1029.  
  1030.                3.  Select  "Options | Style", then "3-D".
  1031.  
  1032.                4.  Select "Titles" and  enter "Grain  Sales  by
  1033.                    Percent" as the main title.
  1034.                                   
  1035.                5.  Select "Item titles" and enter the five item 
  1036.                    descriptions,   i.e.,  "Wheat  [Enter]  Corn 
  1037.                    [Enter]   Soy [Enter]   Rice [Enter]   Other 
  1038.                    [Enter]".
  1039.                 
  1040.                6.  Select "Draw" to draw the graph.   
  1041.  
  1042.  
  1043.                    Notes:  Radius Adjustment
  1044.     
  1045.                    When  printing  a  pie  graph  (printing  is 
  1046.                    explained in Section V),  you  may  find  it 
  1047.                    desirable  to  adjust the radius of the pie, 
  1048.                    to produce a smaller/larger pie circle.  Any 
  1049.                    floating pt. value between 0.1 and 10.0  may 
  1050.                    be  used.   5.0  represents a default radius 
  1051.                    value, which may/may not be appropriate  for 
  1052.                    your printer...        
  1053.              
  1054.  
  1055.  
  1056. -------------------------------------------------------------------------------             
  1057.              
  1058.              
  1059.              
  1060.     H.  Area/Ribbon Graph
  1061.  
  1062.  
  1063.          Description:  Graphs up  to  1000  (x,y)  data-points  (total) 
  1064.                            taken  from  a  data-file  or  entered in on the 
  1065.                            screen.  Graph is drawn as a series  of  stacked 
  1066.                            area  wedges.  The user has the option to show a 
  1067.                            symbol at each data point.  Multiple data groups
  1068.                            may be  displayed  by assigning  a unique symbol
  1069.                            to each individual data group.
  1070.  
  1071.                
  1072.            Notes:  This  graph is somewhat like the X/Y line graph, 
  1073.                except that instead of showing lines, this graph 
  1074.                shows area "wedges" bounded by the data points. 
  1075.  
  1076.                The data point specification format is the  same 
  1077.                as  that  for  the  xy-line  graph:  each  (x,y) 
  1078.                coordinate must be entered on its  own  line  in 
  1079.                the  data-file,  and  the symbol to be displayed 
  1080.                must follow the y- coordinate on the line.  Each 
  1081.                "group" of data  should  have  a  unique  symbol 
  1082.                associated with it.
  1083.  
  1084.                Again,  it  is  extremely  important to list the 
  1085.                data-points in the file sequentially--order  the 
  1086.                data groups themselves (from smallest to largest 
  1087.                in  terms  of  the y-coordinates), and order the 
  1088.                data  within  each  group  (starting  with   the 
  1089.                smallest  x-coord.,  and ending with the largest 
  1090.                x-coord.), as in the example  below.   Otherwise 
  1091.                this  graph  will  look like a mess, with "fill" 
  1092.                colors splashed everywhere!
  1093.             
  1094.         Options:   Separate fill colors for  each  individual  data 
  1095.                region  may be selected.  The graph can be drawn 
  1096.                front-to-back or back-to-front.  Toggle the "Re-
  1097.                verse Stacking Order" option   to  control  this 
  1098.                operation.
  1099.  
  1100.       Painting in Fills:   As  noted  earlier,  to  paint  in  a particular 
  1101.                (bounded) region of the graph  after  the  graph 
  1102.                is  drawn,  you  can  position  the  mouse  at a 
  1103.                location within  the  region  to  colorize,  and 
  1104.                click  the  left button.  The paint color may be 
  1105.                set/changed by clicking the right mouse button.
  1106.                
  1107.  
  1108.            Example #1:  It is  desired to display five groups of (x,  y) 
  1109.                            data   on  a  graph, and identify the individual 
  1110.                            groups  with specific symbols.  To  make  things 
  1111.                            easier, use  the  same symbols and data  as  for
  1112.                            the x/y line graph presented earlier.
  1113.  
  1114.  
  1115.                1.  Create  the  data-file.  Use an ASCII editor 
  1116.                    to  edit  a file "area.dat", containing  the
  1117.                    data  points  and  symbols.   Since the data 
  1118.                    here is identical with that used in the x/y- 
  1119.  
  1120.                           
  1121.              
  1122. -------------------------------------------------------------------------------
  1123.                
  1124.                
  1125.              
  1126.                    line  graph example, one could edit the data
  1127.                    file for that graph, but conveniently a file
  1128.                    "area.dat" has been included with ZGRAFWIN--
  1129.                                it already has appropriate titles and  graph
  1130.                                colors specified in it...
  1131.                 
  1132.                                In the file you may notice  the  absence  of 
  1133.                                underscores  on  some  of  the  commands and 
  1134.                                identifiers--e.g., "AXIS COLOR"  instead  of 
  1135.                                "AXIS_COLOR",   etc.    This  works  because 
  1136.                                ZGRAFWIN's data-file parser scans each  line 
  1137.                                looking for certain unique "tokens" (in this 
  1138.                                case  "AXIS",  not  the full "AXIS_COLOR" is 
  1139.                                the token).  Thus, it  is  possible  to  use 
  1140.                                alternate,    more   "English-language-like" 
  1141.                                versions of some of the commands.  And don't 
  1142.                                worry.  If  you  DO  happen  to  specify  an 
  1143.                                illegal  expression on a line, ZGRAFWIN will 
  1144.                                let you know about  it.   The  program  will 
  1145.                                stop  and  display  the  offending token and 
  1146.                                line number in the data file, so you can  go 
  1147.                                back and correct the error...  
  1148.  
  1149.                2.  Under the Areas "Setup" heading, click "Load 
  1150.                    data file".  When prompted for the  name  of 
  1151.                    the data-file, type "area.dat".  The program 
  1152.                    indicates that  30  data-points were Loaded.
  1153.  
  1154.                3.  Now select "Draw"  to  construct  the graph. 
  1155.                    To experiment, use the arrow keys to  change
  1156.                    graph fill  colors,  which  will change  the
  1157.                    colors  of  individual  area  regions in the 
  1158.                                graph. 
  1159.  
  1160.  
  1161.          Example #2:   For  this  example,  we'll  create an area graph 
  1162.                using a function F(X),  and  demonstrate  how  a 
  1163.                function  can be used to supply "input" data for 
  1164.                a graph. . .  
  1165.                 
  1166.                1.  Create the function graph "F(X) = sin(X)/X", 
  1167.                    as  in  the F-2D graph example... 
  1168.                 
  1169.                2.  Move over to the Area graph menu, and select 
  1170.                    "Draw".   Since  no new file was loaded, the 
  1171.                    data currently in memory  from  the  F(X)  = 
  1172.                    sin(X)/X graph is utilized.  What's drawn is 
  1173.                    the F(X) = sin(X)/X curve, as an  area/wedge 
  1174.                    graph...
  1175.  
  1176.             Note:  It  is  possible  to  "pipe"  the input data 
  1177.                                calculated  via  a  function/expression   to 
  1178.                                another  graph (as was done in this example) 
  1179.                                in the case of the X/Y line, Log, Polar, and 
  1180.                                Area graphs.  It is also possible to read  a 
  1181.                                data file in for one type of graph, and then 
  1182.                                graph  it  (by  selecting "Draw") on another 
  1183.                                menu.  This last  variation  CAN  result  in 
  1184.                                unpredictable  program behaviour, though, if 
  1185.                                done irreverently--so be careful!   
  1186.                                
  1187.                                
  1188. -------------------------------------------------------------------------------                 
  1189.     
  1190.                            
  1191.                                       
  1192.    V.  PRINTING GRAPHS
  1193.  
  1194.         Graphs  may  be printed by selecting "Print" (the last item on each 
  1195.         graph pull-down menu) or by clicking the "Print" Tool Bar button.  
  1196.         
  1197.         IMPORTANT:  One should first generate the graph on the screen (with 
  1198.                     a graph's "Draw" pull-down menu selection or  with  the
  1199.                     "Redraw Graph" button) prior to printing it,  otherwise 
  1200.                     printing may not work properly!   
  1201.  
  1202.     Two   different   print-modes  are  supported  in  ZGRAFWIN--Screen 
  1203.     Printing and Direct-GDI Printing.  Screen-printing,  as  the  title 
  1204.     suggests,  takes a bit-mapped "picture" of the screen  and sends it 
  1205.     to  the  printer.   Direct-GDI  printing  involves  directing   the 
  1206.     Windows' Graphics-Device-Interface (GDI) calls (i.e., the function- 
  1207.     calls  used  to  create  a  graph)  directly to the printer driver.  
  1208.     There are advantages and disadvantages to each style of printing...
  1209.     
  1210.         The  screen-print  format  is generally faster (because Windows can 
  1211.         use a "banding" technique to print the data, which  saves  memory), 
  1212.         but it may not always produce elegant-looking output, especially if 
  1213.         Windows has to scale the bit-mapped image significantly to meet the 
  1214.         dimensions  of  the  printed  page.   The  default  direct-GDI call 
  1215.         approach is slower, but can take  advantage  of  the  full  printer 
  1216.         resolution, and often produces more professional-looking output. 
  1217.  
  1218.     Print  settings  may  be  selected  under  the  Main Menu "Options" 
  1219.     section.  Briefly, the options available are:
  1220.                 
  1221.     
  1222.         1.  Area  to  Print  (Selects Region of the Window  to Print--
  1223.         This Applies  for  Screen-Print Modes Only -- See Item #2,
  1224.         Below):      
  1225.         
  1226.             Whole Window - Prints Window Interior  (Client Area)  Plus 
  1227.                        Window Caption, Window Border, etc.
  1228.         
  1229.             Client Area  - Prints Window Interior (Client Area) Only.
  1230.         
  1231.                 
  1232.         2.  Type of Print  (Selects  Screen-Print  Mode  or  Direct-GDI 
  1233.         Mode,  and allows specification of scaling for Screen-Print 
  1234.         modes):
  1235.     
  1236.             Best-Fit  - This  type  of   Screen-Printing   forces   the 
  1237.                 horizontal  dimension  of  the printed image to 
  1238.                 full-page width, with  the  vertical  dimension 
  1239.                 set  to maintain the proper aspect ratio.  This 
  1240.                 scaling  mode  is  best  for  printing   graphs 
  1241.                 utilizing circles, e.g., polar and pie graphs.
  1242.  
  1243.         Full-Page - This  Screen-Print  mode  attempts to scale the 
  1244.                 output to cover approximately the whole printed 
  1245.                 page. 
  1246.                      
  1247.             1X-2X-3X  - This  Screen-Print  mode either uses no scaling 
  1248.                 (the same image pixel height and width  on  the 
  1249.                 screen  are  used in the printed output), OR it 
  1250.                 scales by exact multiples (2, 3,  4,  etc.)  of 
  1251.     
  1252.     
  1253.     
  1254. -------------------------------------------------------------------------------
  1255.     
  1256.     
  1257.                 the   screeen   pixel   height  and  width,  as 
  1258.                 necessary to cover  as  much  as  the  page  as 
  1259.                 possible.  This setting is best for graphs with 
  1260.                 a  lot of "fine detail", where the aspect ratio 
  1261.                 isn't critical...
  1262.     
  1263.            Direct-GDI - (DEFAULT) This mode does not use "screen-print-
  1264.                             ing", but sends Windows' GDI  commands directly
  1265.                             to the printer driver.  
  1266.                   
  1267.         
  1268.        3.  Output Color Format (Adjusts Graph for Printing of Color or
  1269.            Black-and-White Output): 
  1270.         
  1271.         Color  - This selection prints the colors and fill areas as 
  1272.              shown on the screen.
  1273.         
  1274.        Blk-and-Wht - (DEFAULT)  If  this  selection  is  chosen,  graph 
  1275.                          entities  (axis,  plot,  background,  fill-colors, 
  1276.                          etc.) will be converted  to  appropriate  settings 
  1277.                          that   are  visible  on  black-and-white  printers 
  1278.                          immediately before  the  graph  is  printed.   For 
  1279.                          example,  color "solid" fills will be converted to 
  1280.                          "hatch" fills on the pie, bar, and area graphs, so 
  1281.                          that they will be visible in black-and-white...
  1282.     
  1283.     
  1284.         You are encouraged to  experiment  with  these  print  settings  as 
  1285.         necessary  to  produce  good  results.   You  may  wish  to use the 
  1286.         "Direct-GDI" print-mode most of the time.   Because  of  speed  and 
  1287.         memory-usage  considerations, however, the Direct-GDI print mode is 
  1288.         NOT recommended for printing G-3D graphs--Use Screen-Print instead.
  1289.  
  1290.         The "Print Setup" option brings up  the  familiar  Windows  printer 
  1291.         driver  dialog  box,  under  Windows 3.1.  If you are using Windows 
  1292.         3.0, or if "Cannot Load Printer Driver" results when you  click  on 
  1293.         this  selection,  just use the Windows Control Panel to adjust your 
  1294.         settings.  If your printer driver supports it,  I  recommend  using 
  1295.         "landscape" orientation when printing graphs.
  1296.     
  1297.         By the way, instead of using "Print" to  print  graphs,  a  "screen 
  1298.         print"  of  the  window  can be had at any time by selecting "Print 
  1299.         window" on the "Options | Print" menu).
  1300.     
  1301.     Once  you start the print operation, a "Preparing for Print" dialog 
  1302.     box will appear onscreen, with a "Cancel" button to abort printing. 
  1303.     After the dialog box goes away, the Print Manager  will  take  over 
  1304.     and  handle  the  rest of the job.  At this point, you may click on 
  1305.     the Print Manager icon and select "Abort" to halt printing...
  1306.  
  1307.     
  1308.     *******************************************************************
  1309.     **                                                               **
  1310.     **                WHAT TO DO IF YOU ARE UNABLE TO PRINT...          **
  1311.     **                                                               **
  1312.     *******************************************************************
  1313.     
  1314.         If printing doesn't work, DON'T PANIC!  First check your  "WIN.INI" 
  1315.         file in the Windows install directory (e.g., "\WINDOWS") for proper 
  1316.         printer-setup information, as explained in the next sections...
  1317.  
  1318.  
  1319.                             
  1320. -------------------------------------------------------------------------------
  1321.  
  1322.     
  1323.     In examining WIN.INI, printers are listed in two or three different 
  1324.     sections--the [windows] section, and later  in  the  [PrinterPorts] 
  1325.     and/or  [devices]  section.   For ZGRAFWIN printing to operate, you 
  1326.     need to have a string with your printer device name,  driver  name, 
  1327.     and  the  output  port listed in the first [windows] section of the 
  1328.     file, like this:
  1329.     
  1330.         
  1331.         [windows]
  1332.         [other lines here...]
  1333.         device=IBM Graphics,IBMGRX,LPT1:
  1334.             
  1335.         
  1336.     In this case, the device name is IBM Graphics, the driver  name  is 
  1337.     IBMGRX,  and  the  output  port  is  LPT1.   If  you're  unsure  of 
  1338.     appropriate device/driver/port selections, you can get  some  ideas 
  1339.     by  looking  in the [PrinterPorts] or [devices] section of WIN.INI.  
  1340.     Make sure that the driver-file exists (e.g,  in  this  case,  there 
  1341.     must  be  a "IBMGRX.DRV" file in the \WINDOWS\SYSTEM directory) and 
  1342.     ensure that the output port is operational on your computer.
  1343.         
  1344.     If  your  WIN.INI file does not have  the  right  driver/port/etc.,
  1345.     you'll need to edit it so that it contains the correct information.
  1346.  
  1347.     
  1348.     IMPORTANT:   PLEASE  MAKE  A BACKUP COPY OF YOUR ORIGINAL "WIN.INI" 
  1349.              FILE BEFORE MAKING CHANGES TO IT, IN CASE OF PROBLEMS!
  1350.     
  1351.     
  1352.     After editing, save the file and return to  Windows.   
  1353.  
  1354.     Second, if you are having problems  doing  a  "Screen  Print",  try 
  1355.     reducing  the  size  of  the window before printing.  In some cases 
  1356.     when memory is tight it may be impossible to print a large  window, 
  1357.     although smaller windows can be printed just fine.  
  1358.     
  1359.     Third, make sure your printer is configured appropriately for  your 
  1360.     Windows  configuration  (under  "Printers"  in  the Windows Control 
  1361.     Panel).  As an example, if you have a Laser printer with  only  0.5 
  1362.     Meg.  of  RAM,  you'll  get  a printer error if Windows thinks your 
  1363.     printer has 2.0 Meg, or if you're set to print at a very  high  dpi 
  1364.     setting.
  1365.     
  1366.     If  printing  still doesn't work, check that your printer is hooked 
  1367.     up properly, and  ensure  that  it  is  online/ready-to-print.   If 
  1368.     problems  persist,  you  may  need to re-install and/or reconfigure 
  1369.     your printer setup (see your Microsoft  Windows  documentation  for 
  1370.     more information).
  1371.     
  1372.         
  1373.     Example:  Create and Print a Bar Graph. 
  1374.  
  1375.         1.  Create the bar graph given in Sect.  IV,  part  F.   Select 
  1376.         "Bar | Options | Style", then  "Single-color  graph",  then
  1377.         generate the graph.
  1378.                               
  1379.         2.  When  the  graph  is  displayed onscreen, click the "Print" 
  1380.                 Tool Bar button to print it.  If your settings in "WIN.INI" 
  1381.                 are correct and your printer is ready to go  (as  discussed 
  1382.                 above), the graph will start printing after a few seconds.
  1383.                 
  1384.     
  1385.           
  1386. -------------------------------------------------------------------------------
  1387.         
  1388.               
  1389.  
  1390.             
  1391.     VI.   MISCELLANEOUS
  1392.           
  1393.  
  1394.     A.  Math Functions and Syntax
  1395.  
  1396.         The following are legal math functions for this program:
  1397.  
  1398.         ABS()   -- absolute value
  1399.         ACOS()  -- arc cosine
  1400.         ASIN()  -- arc sine
  1401.         ATAN()  -- arc tangent
  1402.         COSH()  -- hyperbolic cosine
  1403.         COS()   -- cosine [argument in radians]
  1404.         EXP()   -- e (= 2.7182) raised to the () power
  1405.         LOG10() -- common logarithm (base 10)
  1406.         LOG()   -- natural logarithm (base e)
  1407.         POW10() -- ten raised to the () power 
  1408.                 RAND()  -- random number in the Range [0,1]
  1409.         SINH()  -- hyperbolic sine [argument in radians]
  1410.         SIN()   -- sine [argument in radians]
  1411.         SQRT()  -- square root
  1412.         SQR()   -- square, i.e., () raised to 2nd power
  1413.         TANH()  -- hyperbolic tangent [argument in radians]
  1414.         TAN()   -- tangent [argument in radians]
  1415.  
  1416.            
  1417.         The following operators are valid in functions:
  1418.         
  1419.             +    Addition                -   Subtraction    
  1420.         *    Multiplication            /   Division    
  1421.         ^    To the Power, e.g., 5^3 = 125    ()  Parenthesis
  1422.  
  1423.  
  1424.         These  functions  and  operators may be used in both   the F-2D 
  1425.         and  G-3D  expressions   to  represent  mathematical  formulae, 
  1426.         with results calculated in double-precision.
  1427.         
  1428.         Functions must be entered using  proper  algebraic  syntax,  or 
  1429.         ZGRAFWIN's  function  parser  will  indicate  an error ("Syntax 
  1430.         Error" will be  displayed).   An  example  of  some  legal  and 
  1431.         illegal ZGRAFWIN functions now follows:
  1432.  
  1433.                   
  1434.     Sample F-2D functions/expressions:
  1435.   
  1436.     1.  5.0                              <- OK  (graph = constant)
  1437.     2.  sin(x)                             <- OK  (trigonometric)
  1438.     3.  tan(x) / x + 2.6                      <- OK  (trig., x non-zero)
  1439.     4.  17.0 + x*(-3.0 + x*(-1.0 + 2.0*(x)))  <- OK  (polynomial)
  1440.     5.  3*x + 2*y - 15.0              <- OK  (line) 
  1441.     6.  x*x + y*y - 25.0              <- OK  (circle)
  1442.     7.  sin(P)/cos(x)                         <- Illegal (the symbol 
  1443.                                       'P' is not defined)
  1444.     8.  sin(2.0 * x + (3.0 * x)               <- Illegal (Parenthesis 
  1445.                                       imbalance)
  1446.     9.  3.0 * x + 5.0 = 8.0                      <- Illegal ('=' symbol 
  1447.                                       not allowed)
  1448.  
  1449.         
  1450.         
  1451.  
  1452. -------------------------------------------------------------------------------        
  1453.         
  1454.         
  1455.         
  1456.                   
  1457.     Sample G-3D functions:    
  1458.     
  1459.     1.  3.0                  <- OK  (plane) 
  1460.     2.  X - 5.0              <- OK  (plane) 
  1461.     3.  sin(X * Y * 0.05)          <- OK  (curved surface)     
  1462.     4.  sqrt( X/Y )              <- OK  (curved surface, 
  1463.                               Y non-zero, | X/Y | > 0)
  1464.     5.  Z = exp(X) * sin(Y)              <- Illegal ('=' and 'Z' are not
  1465.                          allowed)    
  1466.  
  1467.         
  1468.       Notes:   If you enter an EXTREMELY complicated expression, you'll get  
  1469.            a parser stack error, but for  most  practical  expressions/
  1470.            functions there  is  no need to worry about even approaching 
  1471.            this stack limit...
  1472.             
  1473.            A "Math  Calculation  Error"  may  result,  usually  due  to 
  1474.            evaluation  of a function at a singularity or at a value not 
  1475.            in the function domain, [e.g., evaluating F(X) = log(X) at X 
  1476.            = 0].  To fix the problem, change the  interval  over  which 
  1477.            the  function  is  to be graphed, so that discontinuities or 
  1478.            illegal domain values are avoided...  
  1479.            
  1480.                In  some  instances,  it may be possible to graph a function 
  1481.                over a range which does include singularities--for  example, 
  1482.                it  is  possible  to  graph F(X) = 1.0/X from -10.0 to 10.0, 
  1483.                using n = 100 data points (even though the  function  "blows 
  1484.                up"  at  X = 0).  In this instance we are fortunate, because 
  1485.                we don't evaluate the function PRECISELY at X  =  0.   Also, 
  1486.                note that the trace around X = 0 isn't very accurate! 
  1487.            
  1488.         
  1489.     B.  Saving/Restoring Graphics Images
  1490.     
  1491.         ZGRAFWIN supports the standard PCX graphics format.  Images may 
  1492.         be imported into ZGRAFWIN ("Options | Image Load/Save| Load PCX
  1493.         File") and/or saved to a file ("Save PCX File" on same menu).
  1494.         
  1495.             Monochrome,  16-color, and 256-color PCX images may be imported 
  1496.             into ZGRAFWIN.  Using the scroll bars, images can  be  scrolled 
  1497.             up/down  and right/left as necessary to view portions of bigger 
  1498.             pictures...  ZGRAFWIN allows graphics images to be saved in the 
  1499.             16-color PCX format.   
  1500.            
  1501.         In addition, there is an option allowing the user to  copy  the 
  1502.         graphics  screen  to  the Windows Clipboard, for use with other 
  1503.         graphics software, e.g., the Windows Paintbrush  program.  This
  1504.         feature is also on the "Options | Image Load/Save" menu.
  1505.         
  1506.         
  1507.         
  1508.         
  1509.         
  1510.            
  1511.                
  1512.         
  1513.         
  1514.         
  1515.         
  1516.         
  1517.         
  1518. -------------------------------------------------------------------------------
  1519.         
  1520.                
  1521.         
  1522.     C.  Data-File Input Formats
  1523.                     
  1524.     
  1525.             Numeric-Data Formats:
  1526.             --------------------
  1527.         
  1528.             ZGRAFWIN  expects  numeric  data  in specified formats for each 
  1529.             different graph category.  Input data must be of the form:
  1530.     
  1531.     
  1532.         1.  F-2D         -- N/A
  1533.  
  1534.         2.  G-3D       -- N/A
  1535.         
  1536.         3.  X/Y Line, Log, Area:
  1537.  
  1538.             Each  row  in  the  file  should  have  3  entries,  an 
  1539.             x-coordinate, a y-coordinate, and a  symbol,  separated  
  1540.             by whitespace.  That is, each line should look like:
  1541.             
  1542.             [x]    [y]     [symbol]
  1543.                 
  1544.                     Here,  the  [x]-  and  [y]-coordinates are floating-pt. 
  1545.                     numbers--[symbol] is either an ASCII  character  (e.g., 
  1546.                     "A") or a hex code for a custom IBM graphics character. 
  1547.                     E.g.,  "\1E" represents graphics character 1EH, a small 
  1548.                     triangle.  The triangle symbols (1E and  1F)  are  very 
  1549.                     useful  in  graphs,  as is the "diamond" (04) and "box" 
  1550.                     (FE).  These four custom symbols  are  the  only   ones 
  1551.                     currently supported; more may be added in the future...
  1552.                     
  1553.  
  1554.         4.  Polar:
  1555.             
  1556.             Each  row  in  the  file  should  have  3   entries--an 
  1557.             x-coordinate,  a  y-coordinate, and  a  symbol;  alter- 
  1558.             natively, a radius, an angle, and a symbol may be used:
  1559.             
  1560.             [x]    [y]     [symbol]        
  1561.                 
  1562.                 - OR -
  1563.     
  1564.             [r]     [theta]     [symbol]   
  1565.             
  1566.             The [x]-, [y]-, [r]- and [theta]-values are all  float- 
  1567.             point  numbers;  [theta] is in radians, and [symbol] is 
  1568.             an ASCII character/hex representation.
  1569.                       
  1570.                                           
  1571.         5.  Pie:
  1572.             
  1573.             Each row in the data file should contain the size of an 
  1574.             individual sector in the pie (a floating-point number).  
  1575.             For  [n]  slices  in  the pie, there should be [n] data 
  1576.             lines in the data file, each of the form:
  1577.             
  1578.             [Slice size]
  1579.         
  1580.             where [Slice size] is a floating-pt. number.
  1581.              
  1582.         
  1583.         
  1584. -------------------------------------------------------------------------------
  1585.         
  1586.         
  1587.                     
  1588.            
  1589.         6.  Bar:        
  1590.             
  1591.             The format of the data file depends upon the number  of 
  1592.             bar groups in the graph, as follows (assuming there are
  1593.             [n] data samples):
  1594.         
  1595.             
  1596.             For 1 Group of Bars:    [Sample 1]
  1597.                                [Sample 2]   
  1598.                         [Sample 3]
  1599.                         .
  1600.                         .            
  1601.                         .    
  1602.                         [Sample n]   
  1603.     
  1604.         
  1605.             
  1606.             For 2 Groups:   [Samp. 1, Group 1]   [Samp. 1, Group 2]
  1607.                     [Samp. 2, Group 1]   [Samp. 2, Group 2] 
  1608.                     [Samp. 3, Group 1]   [Samp. 3, Group 2]
  1609.                        .             .
  1610.                        .             .
  1611.                         .             .
  1612.                     [Samp. n, Group 1]   [Samp. n, Group 2]
  1613.             
  1614.         
  1615.             
  1616.             3 Groups:   [Samp 1/Gr 1]  [Samp 1/Gr 2]  [Samp 1/Gr 3]
  1617.                     [Samp 2/Gr 1]  [Samp 2/Gr 2]  [Samp 2/Gr 3]
  1618.                     [Samp 3/Gr 1]  [Samp 3/Gr 2]  [Samp 3/Gr 3]
  1619.                    .         .        .
  1620.                    .         .        .
  1621.                    .         .        .
  1622.                     [Samp n/Gr 1]  [Samp n/Gr 2]  [Samp n/Gr 3]
  1623.             
  1624.  
  1625.  
  1626.             Note that there are as many rows in the file  as  there 
  1627.             are  bar  samples,  and  as many entries on each row as 
  1628.             there are bar groups (1-3).  
  1629.  
  1630.  
  1631.         
  1632.         
  1633.         Command-Line Syntax:
  1634.         -------------------
  1635.         
  1636.         The general syntax of a ZGRAFWIN data-file command line  (i.e.,  
  1637.         a line which begins with "#") is:
  1638.     
  1639.         #[COMMAND id]  =  [EXPRESSION]     ,
  1640.  
  1641.         where command identifiers and  expression  values represent the
  1642.         legal identifiers and expressions for the different graphs,  as 
  1643.         listed in the following chart:
  1644.         
  1645.         
  1646.         
  1647.         
  1648.         
  1649.         
  1650. -------------------------------------------------------------------------------
  1651.             
  1652.         
  1653.                 
  1654.                      GRAPH
  1655.         [COMMAND id]      APPLICABILITY     LEGAL [EXPRESSION] values
  1656.         -------------------------------------------------------------
  1657.         
  1658.         #GRAPH_TYPE              All              [See Item #1 Below]    
  1659.         #AXIS_COLOR        XY/Polar/Log     A Number, 0-63  
  1660.         #BKG_COLOR            All           A Number, 0-63
  1661.         #DRAW_COLOR           Bar/Pie/Area     A Number, 0-63
  1662.         #PLOT_COLORS       XY/Log/Polar        [See Item #2 Below]
  1663.         #FILL_COLORS       Bar/Pie/Area        [See Item #2 Below]
  1664.         #FILL_PATTERNS    ------- Not Yet Implemented -----------
  1665.         #MAIN_TITLE              All           A String terminated by "^"
  1666.         #HORIZ_TITLE    XY/Log/Polar/Area   A String terminated by "^"
  1667.         #VERT_TITLE     XY/Log/Polar/Area   A String terminated by "^"
  1668.         #LEGEND_TITLES      Bar           One or More Strings,
  1669.                            Each Delimited by "^"
  1670.         #ITEM_TITLES    Bar/Pie     A String terminated by "^"
  1671.         #DATA          All             [None Needed]
  1672.         #NUMBER_OF_SAMPLES    Bar            A Number, 1 - ?
  1673.         #NUMBER_OF_GROUPS     Bar            A Number, 1-3
  1674.         #XMIN          XY        A Floating-Pt. Number
  1675.         #XMAX          XY        A Floating-Pt. Number
  1676.         #YMIN        XY / Bar    A Floating-Pt. Number
  1677.         #YMAX        XY / Bar    A Floating-Pt. Number
  1678.         #OPTIONS              All               [See Item #4 Below]
  1679.         
  1680.  
  1681.                         
  1682.         1.  The #GRAPH_TYPE Command must appear in the  data  file, 
  1683.             and  should  be  followed by one of the following graph 
  1684.             identifiers: 
  1685.             
  1686.             XY_GRAPH
  1687.             POLAR_GRAPH
  1688.             LOG_GRAPH
  1689.             BAR_GRAPH
  1690.             PIE_GRAPH
  1691.             AREA_GRAPH
  1692.             
  1693.                 
  1694.         2.  The  #PLOT_COLORS  and  #FILL_COLORS Commands should be 
  1695.             followed  by  an  expression  listing  the  appropriate 
  1696.             number   of   plot/fill  colors  for  the  graph,  each 
  1697.             separated by a carat ("^").  Each Plot  or  Fill  Color
  1698.             should  be in the range 0-63.  The first 16 colors  are  
  1699.             the standard VGA PURE colors, i.e.,
  1700.  
  1701.                    Black   = 0        Gray           =  8
  1702.                 Blue    = 1        Bright Blue    =  9
  1703.                Green   = 2        Bright Green   = 10
  1704.                Cyan    = 3        Bright Cyan    = 11
  1705.                Red     = 4        Bright Red     = 12
  1706.                    Yellow  = 5        Bright Yellow  = 13
  1707.                    Brown   = 6        Bright Brown   = 14
  1708.                    White   = 7        Bright White   = 15
  1709.             
  1710.             and the remaining 48 colors are "dithered" variations
  1711.             of these.
  1712.             
  1713.             
  1714.  
  1715.                     
  1716. -------------------------------------------------------------------------------
  1717.             
  1718.  
  1719.  
  1720.             As an example, the  following  command-line  specifies
  1721.             three fill colors as Blue (0), Green (2), and Cyan (3). 
  1722.             
  1723.         
  1724.             #FILL_COLORS = 1 ^ 2 ^ 3 ^    
  1725.                         
  1726.             
  1727.                         
  1728.             For  a  bar  graph,  each fill color corresponds to the 
  1729.             color of an individual bar group.   For  pie  and  area 
  1730.             graphs,  each  fill  color corresponds to an individual 
  1731.             pie slice or area wedge  in the  graph.   For  an  XY-, 
  1732.             Polar,  or Log-style graph, each plot color corresponds 
  1733.             to an individual data group within the graph.
  1734.  
  1735.         
  1736.         3.  The  #OPTIONS  command should be followed by a list  of 
  1737.             appropriate  options  switches,  each   of   which   is 
  1738.             separated  by  a  carat  ("^").  Legal Options Switches 
  1739.             are:
  1740.     
  1741.              CONNECT       - Forces Line Connect Display ON    
  1742.              NO_CONNECT    - Forces Line Connect Display OFF
  1743.     
  1744.             
  1745.              SYMBOLS       - Forces Symbol Display ON
  1746.              NO_SYMBOLS    - Forces Symbol Display OFF
  1747.     
  1748.             
  1749.     for Polar   ->   POLAR           - Specifies POLAR input data format
  1750.     Graphs Only ->   RECTANGULAR   - Specifies RECTANGULAR input format
  1751.         
  1752.         
  1753.         
  1754.              GRID           - Forces Grid Display ON
  1755.              NO_GRID       - Forces Grid Display OFF
  1756.  
  1757.                 
  1758.     for Log     ->   LOG_X           - Specifies a Log X, Linear Y Graph
  1759.     Graphs        ->      LOG_Y           - Specifies a Log Y, Linear X Graph
  1760.     Only        ->      LOG_LOG       - Specifies a Log X, Log Y Graph
  1761.     
  1762.     
  1763.     for Pie and ->   2D           - Specifies a 2-Dimensional Graph
  1764.     Bar Graphs  ->   3D           - Specifies a 3-Dimensional Graph
  1765.     Only
  1766.         
  1767.         
  1768.     for X/Y and ->     MANUAL           - Manual Scaling (user enters the X-
  1769.     Bar Graphs                   and/or the Y- axis ranges)
  1770.         Only        ->     AUTOMATIC     - Automatic Scaling (default)
  1771.             
  1772.             
  1773.                     
  1774.     Example:   For a Polar Graph, the Following  #OPTIONS  Line  Forces 
  1775.            the Input Data to POLAR  format, turns  the Line-Connect 
  1776.            feature ON, and turns the Grid Display feature ON:
  1777.     
  1778.            #OPTIONS = POLAR ^ CONNECT ^ GRID ^
  1779.             
  1780.             
  1781.             
  1782. -------------------------------------------------------------------------------
  1783.             
  1784.                             
  1785.     
  1786.     Note that all commands and expressions  are  upper-case.   Since  a 
  1787.     "minimal" token-parsing  technique  is used,  shortened versions or 
  1788.     alternate versions  of  both  the  [COMMAND  id]  and  [EXPRESSION] 
  1789.     identifiers  may  be  utilized  in  many  cases.   For example, the 
  1790.     following command lines are all equivalent:
  1791.     
  1792.     
  1793.         #GRAPH_TYPE = BAR_GRAPH
  1794.         #GRAPH TYPE = BAR GRAPH
  1795.         #GRAPH        = BAR GRAPH
  1796.         #GRAPH        = BAR
  1797.  
  1798.            
  1799.     An  invalid  command  line  will  be rejected by the parser, and an 
  1800.     error message will displayed, showing the invalid  token  and  line 
  1801.     number in the file...
  1802.  
  1803.     
  1804.     
  1805.     D.  ZGRAFWIN Editor
  1806.     
  1807.         ZGRAFWIN has a built-in editor, to assist in  viewing  and  editing 
  1808.         smaller ASCII files (less than 10K bytes).  The editor is under the 
  1809.         "Options" menu, or can be accessed by clicking the "Edit Text" Tool 
  1810.         Bar  button.   The  selections  are  fairly  straightforward,   and 
  1811.         parallel  those  used in other Windows programs; thus, only a brief 
  1812.         command summary will be given.  The basic options are:
  1813.     
  1814.         New  -- Clears the Edit Workspace.
  1815.         Open -- Opens A New File For Editing in the Workspace
  1816.         Save -- Saves A File from the Workspace to Disk
  1817.          Save As -- Saves A File, Prompting for User-entered File Name
  1818.      Exit Editor -- Leaves Editor and Returns to Main ZGRAFWIN Program
  1819.     
  1820.     The editor's range of "word-processing" features is fairly limited, 
  1821.     but there are basic options to cut,  copy, and  paste  to/from  the 
  1822.     clipboard, etc., as in other Windows file-processing  applications.
  1823.         This built-in editor should be useful in editing graph data files.
  1824.  
  1825.         
  1826.     E.  Adding Custom Text to Graphs
  1827.     
  1828.     ZGRAFWIN  has  a  feature which makes it possible to add customized 
  1829.     text, labels, etc. to a graph.  Up to 30 separate strings,  each up 
  1830.     to  80  characters  in  length  may be located anywhere on a graph, 
  1831.     displayed in your choice of color and text styles...
  1832.         
  1833.     Custom text is added to a graph  using  the  "Text"  menu  options.  
  1834.     Before  entering  the  text, the foreground and background color of 
  1835.     the text as well as any text style options  (including  text  font, 
  1836.     text size settings, etc.) should be selected.
  1837.     
  1838.         Once text attributes are established, select "Enter text string" to 
  1839.         enter  the  actual text you wish to add to the graph.  After typing 
  1840.         in the text, ZGRAFWIN will direct you to position the mouse  cursor 
  1841.         at  the location onscreen where the text is to be placed.  When you 
  1842.         click the mouse button, the text is shown in  the  window,  and  is 
  1843.         locked  in  position.   Now  whenever you regenerate a graph, these 
  1844.         custom text strings will be added onto the screen at  their  proper
  1845.     
  1846.  
  1847.  
  1848. -------------------------------------------------------------------------------
  1849.  
  1850.  
  1851.     
  1852.         positions.  Custom text strings will also be printed  (superimposed 
  1853.         on the graph), if you print a graph...
  1854.                       
  1855.     If  you  make  a  mistake, you can successively delete ("undo") the 
  1856.     most recently entered text strings  one-by-one,  using "Delete last 
  1857.     string", or clear all text strings entered from the window at  once 
  1858.     with  "Delete  All  text". 
  1859.  
  1860.     Note:  If you choose to print a graph with text-strings, it is best 
  1861.            to  use  a screen-print mode (see section V, "Printing"), to 
  1862.            ensure  that  the  strings  are  printed  in   the   correct 
  1863.            locations.   If  the  Direct-GDI  mode is used to print, the 
  1864.            text strings may be located a bit erratically on the printed 
  1865.            page, because of resolution differences between  the  screen 
  1866.            and   the  printed  output.   With  some  extra  effort  and 
  1867.            trial-and-error, however, the Direct-GDI mode may be used.
  1868.  
  1869.  
  1870.     F. Tool Bar Selections
  1871.     
  1872.         The  Tool Bar Options should be fairly self-evident; however, here 
  1873.         is a brief summary of each function:
  1874.  
  1875.             Load/Draw  --  Loads a Graph Data File and Immediately Displays 
  1876.             it Onscreen.
  1877.         
  1878.             Redraw  Screen  -- Redraws the Entire Window (Both the Tool Bar 
  1879.             Area and the Graph Display Area).  
  1880.             
  1881.             Redraw Graph -- Redraws Only the Graph Area of a Window.   This 
  1882.             is  a Convenient Way to Redraw/Redisplay a Graph After Changing 
  1883.             Some Graph Parameters.  It Can Also Be Used to Remove   Effects 
  1884.             of Undesired Paint Operations.
  1885.  
  1886.             Edit Data -- Brings Up a Dialog Box Allowing the User  to  Edit 
  1887.             Data  for  a Given Graph.  Note: This Option Does Not Apply For 
  1888.             the F-2D and G-3D Graphs. 
  1889.         
  1890.             Title -- Allows the User to Select a Main Graph Title.
  1891.  
  1892.             Edit Text -- Switches to the ZGRAFWIN  Editor  With  Which  the 
  1893.             User  May  Edit  Small  Files (i.e., Less than 10K Bytes).  The 
  1894.             Editor is Ideal for Editing ZGRAFWIN Graph Data Files.  
  1895.         
  1896.             Load PCX -- Imports and Displays a PCX File within ZGRAFWIN.
  1897.         
  1898.             Save PCX -- Saves Current Graph Window Contents to a PCX File.
  1899.  
  1900.             Print -- May Be Used to Print the  Current  Graph,  Based  Upon 
  1901.             Print  Setup  Options  and/or  Print Settings Options (Next Two 
  1902.             Toolbar Options)
  1903.         
  1904.             Print Setup -- Brings Up the Windows Printer Driver Dialog Box.  
  1905.             This Option uses COMMDLG.DLL and Won't Work Under Windows 3.0. 
  1906.         
  1907.             Print Settings -- Allows the User to  Select  Individual  Graph 
  1908.             Print Settings.
  1909.         
  1910.             Help -- Brings Up the ZGRAFWIN Online Help Index. 
  1911.         
  1912.                            
  1913.         
  1914. -------------------------------------------------------------------------------
  1915.         
  1916.         
  1917.                     
  1918.   VII.  FILES INCLUDED ON DISK
  1919.     
  1920.     The following files are part of this package:
  1921.  
  1922.         ZGRAFWIN.EXE    - ZGRAFWIN Main Windows Executable Program
  1923.         ZGRAFWIN.HLP    - ZGRAFWIN Online Help File
  1924.         ZGRAFWIN.CFG    - ZGRAFWIN Configuration File
  1925.         ZGRAFWIN.DOC    - ZGRAFWIN User Instructions (this file)        
  1926.         XY.DAT        - Sample data-file for Discrete X/Y graph
  1927.         LOG.DAT        - Sample data-file for Log graph
  1928.         AREA.DAT        - Sample data-file for Area/Ribbon graph
  1929.         POLAR.DAT        - Sample data-file for Polar graph
  1930.         BAR.DAT        - Sample data-file for Bar graph
  1931.         PIE.DAT        - Sample data-file for Pie graph
  1932.         WHATS.NEW        - History, Improvements to ZGRAFWIN        
  1933.         DEMO.EXE        - ZGRAFWIN Demonstration Program    
  1934.     
  1935.                                            
  1936.   VIII.  REGISTRATION
  1937.  
  1938.     If you have found ZGRAFWIN useful, a registration fee of $15 US (or 
  1939.     an amount you feel appropriate) would be greatly appreciated.   Use 
  1940.     the registration/user-response form below, or one of your own.   
  1941.  
  1942.     By  registering  ZGRAFWIN  you will gain access to upcoming program 
  1943.     news and information.  Also, if  you  register  now,  you  will  be 
  1944.     entitled to two free program updates, when they become available.
  1945.     
  1946.     I'm interested in any comments/feedback you  might  have  regarding 
  1947.     the program--including information on any problems you've had using 
  1948.     the  program and general information on how I might improve things.  
  1949.     Please direct correspondence to:
  1950.     
  1951.     John Jakob, ZGRAFWIN Software
  1952.     1831 Old Hickory Court     
  1953.     New Albany, IN 47150     
  1954.     Phone: (812) 949-9524 (h)          
  1955.            (502) 425-9787 (w)
  1956.         BBS:   (812) 949-0416 
  1957.     Compuserve ID: 70742,1356
  1958.         
  1959.  
  1960.     Important Notes:        
  1961.         
  1962.        1.   If you work in a non-profit agency, charitable/humanitarian 
  1963.         organization, ministry, etc., or for some reason are unable 
  1964.         to afford  the  $15  registration  fee,  you  may  register 
  1965.         ZGRAFWIN  for  yourself/your  organization  free of charge.  
  1966.         However, please do write  and  let  me  know  you  want  to 
  1967.         register,  so I can put your name and/or organization on my 
  1968.         mailing list.  Thanks!
  1969.  
  1970.        2.   If you're a  software  developer/programmer  and  would  be 
  1971.         interested in utilizing/modifying ZGRAFWIN graphics for use 
  1972.         in your (MS-Windows 3.X) applications, you may purchase the 
  1973.         complete source code to ZGRAFWIN for  a  reasonable  price.  
  1974.         Also,  a  programmer's  toolkit  is  available  for $30 and 
  1975.         includes the  MS-Windows 'C'  source  to  all  the graphics 
  1976.         functions  (requires Borland's TCW++/BC++ or  the Microsoft 
  1977.         SDK to use).  Contact me for details...    
  1978.         
  1979.         
  1980. -------------------------------------------------------------------------------
  1981.                     
  1982.         
  1983.        3.   If  you want to get the latest version of ZGRAFWIN and have 
  1984.                 a modem, just dial the ZGRAF/ZGRAFWIN BBS at (812) 949-0416 
  1985.                 (BBS services available late October 1992).  Alternatively, 
  1986.                 you  can  download the file "ZGRWIN.ZIP" from Compuserve in 
  1987.                 the IBM Applications Forum.  [GO IBMAPP, Library  #13].   I 
  1988.                 will  try  to  keep  this  version  of the program current.  
  1989.                 Online  software  registration  for  this  program  is  now 
  1990.                 possible thru Compuserve also.
  1991.                
  1992.  
  1993.  
  1994.  
  1995.     ********************************************************************
  1996.     *    ZGRAF/ZGRAFWIN REGISTRATION/RESPONSE FORM        
  1997.     ********************************************************************
  1998.     *                                    
  1999.     *                                    
  2000.     *    Name:   ____________________________________________        
  2001.     *                                    
  2002.     *    Address: ___________________________________________        
  2003.     *                                    
  2004.     *    City, State, ZIP:___________________________________        
  2005.     *                                    
  2006.     *    Country: ___________________________________________        
  2007.     *                                    
  2008.     *                                    
  2009.     *                                    
  2010.     *    Please Indicate  _____  ZGRAFWIN Windows Registration $15 US    
  2011.     *    Your Choice(s): 
  2012.     *              _____  ZGRAF MS-DOS Registration     $10 US    
  2013.     *                                    
  2014.     *                                    
  2015.     *    To assist me in creating a better product for you, the user,    
  2016.     *    please answer the following questions:                
  2017.     *                                    
  2018.     *                                    
  2019.     *    1.  Where did you hear of the program (please be specific)?    
  2020.     *        ________________________________________________________    
  2021.     *        ________________________________________________________    
  2022.     *                                    
  2023.     *    2.  What  is  your general impression of the program?   What    
  2024.     *          features do  you like?   What  do   you dislike, or what    
  2025.     *        would you like to see added or improved?            
  2026.     *        ________________________________________________________    
  2027.     *        ________________________________________________________    
  2028.     *        ________________________________________________________    
  2029.     *        ________________________________________________________    
  2030.     *        ________________________________________________________    
  2031.     *        ________________________________________________________    
  2032.     *                                    
  2033.     *    3.  Would you  personally  recommend  ZGRAF or ZGRAFWIN  for    
  2034.     *        another user?  Why or why not?                
  2035.     *        ________________________________________________________       
  2036.     *        ________________________________________________________    
  2037.     *        ________________________________________________________    
  2038.     *                                    
  2039.     *     4.  Any Other General Comments:                
  2040.     *        ________________________________________________________    
  2041.     *        ________________________________________________________    
  2042.     *        ________________________________________________________    
  2043.     *        ________________________________________________________    
  2044.     *                                    
  2045.     *                                    
  2046.     *        Please Complete      John Jakob, ZGRAFWIN Software    
  2047.     *        and Mail To:         1831 Old Hickory Court            
  2048.     *                             New Albany, IN 47150            
  2049.     *                                    
  2050.     *                                    
  2051.     ********************************************************************
  2052.     *                                    
  2053.     ********************************************************************
  2054.                                     
  2055.                                          
  2056.                                          
  2057.